import Vue from "vue";
import Router from "vue-router";

Vue.use(Router);

import Layout from "@/layout";

export const constantRoutes = [
    {
        path: "/login",
        component: () => import("@/views/login/index"),
        hidden: true,
    },

    {
        path: "/404",
        component: () => import("@/views/404"),
        hidden: true,
    },

    {
        path: "/",
        component: Layout,
        redirect: "/dashboard",
        children: [
            {
                path: "dashboard",
                name: "Dashboard",
                component: () => import("@/views/dashboard/index"),
                meta: { title: "首页", icon: "el-icon-menu" },
            },
        ],
    },

    {
        path: "/authMana",
        component: Layout,
        redirect: "/authMana/user",
        name: "AuthMana",
        meta: { title: "权限管理", icon: "el-icon-s-tools" },
        children: [
            {
                path: "user",
                name: "User",
                component: () => import("@/views/authMana/user/index"),
                meta: { title: "用户管理", icon: "user" },
            },
            {
                path: "role",
                name: "Role",
                component: () => import("@/views/authMana/role/index"),
                meta: { title: "角色管理", icon: "tree" },
            },
        ],
    },

    {
        path: "/trademark",
        component: Layout,
        redirect: "/trademark/brandList",
        name: "Trademark",
        meta: {
            title: "商品管理",
            icon: "el-icon-s-goods",
        },
        children: [
            {
                path: "brandList",
                component: () => import("@/views/trademark/brandList/index"),
                name: "BrandList",
                meta: { title: "品牌管理" },
            },
            {
                path: "trademarkProps",
                component: () =>
                    import("@/views/trademark/trademarkProps/index"),
                name: "TrademarkProps",
                meta: { title: "平台属性管理" },
            },
        ],
    },

    // 404 page must be placed at the end !!!
    { path: "*", redirect: "/404", hidden: true },
];

const createRouter = () =>
    new Router({
        // mode: 'history', // require service support
        scrollBehavior: () => ({ y: 0 }),
        routes: constantRoutes,
    });

const router = createRouter();

export function resetRouter() {
    const newRouter = createRouter();
    router.matcher = newRouter.matcher; // reset router
}

export default router;
